<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue监视对象的原理_数组</title>
    <script src="../js/vue.js"></script>
</head>
<body>
<!--    底层原理 vue将data中的属性赋值给observe方法  在这个方法中有 getter 和 setter方法 只修改自己的属性 最后在将 这个对象 赋值给 vm._data 和 data (监测对象版)-->
<div class="root">
    <ul>
        <li v-for="f in myFriends" :key="f.id">
            {{f.name}} - {{f.hobby}}
        </li>
    </ul>
</div>
<script>
    Vue.config.productionTip = false;
    Vue.config.devtools = true;

    const vm = new Vue({
        el: '.root',
        data: {
            myFriends:[
                {id:'001',name:'张佳',hobby:'导管'},
                {id:'002',name:'张宽',hobby:'导管'},
                {id:'003',name:'雍世仓',hobby:'导管'},
                {id:'004',name:'常乐凯',hobby:'导管'}
            ]
        }
    });
    const arr = [];
    console.log(vm.myFriends.unshift === arr.unshift); //false
    //vue 对数组中增删改的方法进行了包装 使得其获得了可以解析模板(数据更新后)的动作 (因为 vue没有给 数组中的数据 设置 setter 和 getter )
</script>
</body>
</html>